[versions]

# Project Version
project-version = "1.0"

# Language Versions
kt = "1.8"
java = "18"

## SDK Versions ANDROID
minSdk = "26"
targetSdk = "34"
compileSdk = "34"
versionCode = "8"
versionName = "1.3.0"

# Dependencies
firebase-android-bom = "32.3.1"
firebase-android-crashlytics = "2.9.9"
firebase-android-storage = "20.2.1"
firebase-android-analytics = "21.5.0"

moko-resources = "0.23.0"

google-services = "4.3.15"

accompanist = "0.31.2-alpha"
android-constraintlayout-compose = "1.0.1"
android-material = "1.9.0"
androidx-activity = "1.7.2"
androidx-compose = "1.6.0-alpha04"
androidx-compose-compiler = "1.5.3"
androidx-compose-material3 = "1.1.1"
androidx-compose-paging = "3.2.0"

androidx-core-ktx = "1.10.1"
androidx-lifecycle = "2.6.1"
androidx-navigation = "2.7.1"
android-compose-lootie = "6.1.0"
coil = "2.4.0"
coil-landscapist = "2.2.12"

gradle-plugin-android-build-tools = "8.0.2"
gradle-plugin-buildkonfig = "0.13.3"
gradle-plugin-dependency-check = "0.47.0"
gradle-plugin-detekt = "1.22.0"
gradle-plugin-ktlint = "11.4.2"
gradle-plugin-spotless = "6.10.0"

kermit = "1.2.2"

koin-android = "3.4.3"
koin-androidx-compose = "3.4.6"
koin-core = "3.4.3"
koin-test = "3.4.3"

kotlin = "1.9.10"
datastore = "1.1.0-dev01"
kotlinx-coroutines = "1.7.3"
kotlinx-serialization = "1.5.1"
kotlinx-datetime = "0.4.1"

ksp = "1.9.10-1.0.13"
ktor = "2.3.3"
realm = "1.9.0"
rickclephas-nativecoroutines = "1.0.0-ALPHA-18"
rickclephas-kmm-viewmodel = "1.0.0-ALPHA-14"
squareup-okio = "3.4.0"

testing-arch-core = "2.2.0"
testing-junit = "4.13.2"
testing-junit5 = "5.9.1"
testing-junitext = "1.2.0-alpha01"
testing-kotest = "5.5.4"
testing-turbine = "1.0.0"

yandex-ad = "6.3.0"
yookassa-android = "6.8.0"

[plugins]
codingfeline-buildkonfig = { id = "com.codingfeline.buildkonfig", version = "0.13.3" }
kotest-multiplatform = { id = "io.kotest.multiplatform", version.ref = "testing-kotest" }
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
nativecoroutines = { id = "com.rickclephas.kmp.nativecoroutines", version.ref = "rickclephas-nativecoroutines" }
realm-kotlin = { id = "io.realm.kotlin", version.ref = "realm" }
google-services = { id = "com.google.gms.google-services", version.ref = "google-services" }
moko-resources = { id = "dev.icerock.mobile.multiplatform-resources", version.ref = "moko-resources" }
android-crashlytics = { id = "com.google.firebase.crashlytics", version.ref = "firebase-android-crashlytics" }


[libraries]
accompanist-navigation-animation = { module = "com.google.accompanist:accompanist-navigation-animation", version.ref = "accompanist" }
accompanist-navigation-material = { module = "com.google.accompanist:accompanist-navigation-material", version.ref = "accompanist" }
accompanist-pager = { module = "com.google.accompanist:accompanist-pager", version.ref = "accompanist" }
accompanist-pager-indicators = { module = "com.google.accompanist:accompanist-pager-indicators", version.ref = "accompanist" }
accompanist-systemuicontroller = { module = "com.google.accompanist:accompanist-systemuicontroller", version.ref = "accompanist" }

android-material = { module = "com.google.android.material:material", version.ref = "android-material" }
android-constraintlayout = { module = "androidx.constraintlayout:constraintlayout-compose", version.ref = "android-constraintlayout-compose" }
androidx-compose-activity = { module = "androidx.activity:activity-compose", version.ref = "androidx-activity" }
androidx-compose-animation = { module = "androidx.compose.animation:animation", version.ref = "androidx-compose" }
androidx-compose-compiler = { module = "androidx.compose.compiler:compiler", version.ref = "androidx-compose-compiler" }
androidx-compose-foundation = { module = "androidx.compose.foundation:foundation", version.ref = "androidx-compose" }
androidx-compose-material = { module = "androidx.compose.material:material", version.ref = "androidx-compose" }
androidx-compose-material3 = { module = "androidx.compose.material3:material3", version.ref = "androidx-compose-material3" }
androidx-compose-navigation = { module = "androidx.navigation:navigation-compose", version.ref = "androidx-navigation" }
androidx-compose-paging = { module = "androidx.paging:paging-compose", version.ref = "androidx-compose-paging" }
androidx-compose-runtime = { module = "androidx.compose.runtime:runtime", version.ref = "androidx-compose" }
androidx-compose-ui-runtime = { module = "androidx.compose.ui:ui", version.ref = "androidx-compose" }
androidx-compose-ui-tooling = { module = "androidx.compose.ui:ui-tooling", version.ref = "androidx-compose" }
androidx-compose-ui-util = { module = "androidx.compose.ui:ui-util", version.ref = "androidx-compose" }
androidx-compose-icons = { module = "org.jetbrains.compose.material:material-icons-extended", version.ref = "androidx-compose-compiler" }
android-compose-lootie = { module = "com.airbnb.android:lottie-compose", version.ref = "android-compose-lootie" }

androidx-core-ktx = { module = "androidx.core:core-ktx", version.ref = "androidx-core-ktx" }
androidx-lifecycle-runtime = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "androidx-lifecycle" }
androidx-lifecycle-runtime-compose = { group = "androidx.lifecycle", name = "lifecycle-runtime-compose", version.ref = "androidx-lifecycle" }
androidx-lifecycle-viewmodel-compose = { module = "androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "androidx-lifecycle" }
androidx-navigation-common = { module = "androidx.navigation:navigation-common-ktx", version.ref = "androidx-navigation" }
androidx-navigation-runtime = { module = "androidx.navigation:navigation-runtime-ktx", version.ref = "androidx-navigation" }

coil-compose = { module = "io.coil-kt:coil-compose", version.ref = "coil" }
coil-svg = { module = "io.coil-kt:coil-svg", version.ref = "coil" }
coil-landscapist = { module = "com.github.skydoves:landscapist-coil", version.ref = "coil-landscapist" }
coil-landscapist-placeholder = { module = "com.github.skydoves:landscapist-placeholder", version.ref = "coil-landscapist" }
coil-landscapist-transformation = { module = "com.github.skydoves:landscapist-transformation", version.ref = "coil-landscapist" }

google-services = { module = "com.google.gms:google-services", version.ref = "google-services" }
gradle-plugin-android-build-tools = { module = "com.android.tools.build:gradle", version.ref = "gradle-plugin-android-build-tools" }
gradle-plugin-buildkonfig = { module = "com.codingfeline.buildkonfig:buildkonfig-gradle-plugin", version.ref = "gradle-plugin-buildkonfig" }
gradle-plugin-dependency-check = { module = "com.github.ben-manes:gradle-versions-plugin", version.ref = "gradle-plugin-dependency-check" }
gradle-plugin-detekt = { module = "io.gitlab.arturbosch.detekt:detekt-gradle-plugin", version.ref = "gradle-plugin-detekt" }
gradle-plugin-kotest-framework = { module = "io.kotest:kotest-framework-multiplatform-plugin-gradle", version.ref = "testing-kotest" }
gradle-plugin-kotlin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" }
gradle-plugin-kotlinSerialization = { module = "org.jetbrains.kotlin:kotlin-serialization", version.ref = "kotlin" }
gradle-plugin-ksp = { module = "com.google.devtools.ksp:symbol-processing-api", version.ref = "ksp" }
gradle-plugin-ktlint = { module = "org.jlleitschuh.gradle:ktlint-gradle", version.ref = "gradle-plugin-ktlint" }
gradle-plugin-nativecoroutines = { module = "com.rickclephas.kmp:kmp-nativecoroutines-gradle-plugin", version.ref = "rickclephas-nativecoroutines" }
gradle-plugin-navigation-safeArgs = { module = "androidx.navigation:navigation-safe-args-gradle-plugin", version.ref = "androidx-navigation" }
gradle-plugin-realm = { module = "io.realm.kotlin:gradle-plugin", version.ref = "realm" }
gradle-plugin-spotless = { module = "com.diffplug.spotless:spotless-plugin-gradle", version.ref = "gradle-plugin-spotless" }
gradle-plugin-mokoResources = { module = "dev.icerock.moko:resources-generator", version.ref = "moko-resources" }

moko-resources = { module = "dev.icerock.moko:resources", version.ref = "moko-resources" }
moko-resources-compose = { module = "dev.icerock.moko:resources-compose", version.ref = "moko-resources" }
moko-resources-test = { module = "dev.icerock.moko:resources-test", version.ref = "moko-resources" }

kermit-crashlytics = { module = "co.touchlab:kermit-crashlytics", version.ref = "kermit" }
kermit-log = { module = "co.touchlab:kermit", version.ref = "kermit" }

datastore = { module = "androidx.datastore:datastore-preferences-core", version.ref = "datastore" }

koin-android = { module = "io.insert-koin:koin-android", version.ref = "koin-android" }
koin-androidx-compose = { module = "io.insert-koin:koin-androidx-compose", version.ref = "koin-androidx-compose" }
koin-androidx-navigation = { module = "io.insert-koin:koin-androidx-navigation", version.ref = "koin-android" }
koin-androidx-workmanager = { module = "io.insert-koin:koin-androidx-workmanager", version.ref = "koin-android" }
koin-core = { module = "io.insert-koin:koin-core", version.ref = "koin-core" }
koin-test = { module = "io.insert-koin:koin-test", version.ref = "koin-test" }

kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kotlin" }
kotlin-stdlib-jdk = { module = "org.jetbrains.kotlin:kotlin-stdlib-jdk8", version.ref = "kotlin" }
kotlinx-coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "kotlinx-coroutines" }
kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinx-coroutines" }
kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "kotlinx-coroutines" }
kotlinx-serialization = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinx-serialization" }
kotlinx-datetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version.ref = "kotlinx-datetime" }

ktor-client-auth = { module = "io.ktor:ktor-client-auth", version.ref = "ktor" }
ktor-client-contentNegotiation = { module = "io.ktor:ktor-client-content-negotiation", version.ref = "ktor" }
ktor-client-core = { module = "io.ktor:ktor-client-core", version.ref = "ktor" }
ktor-client-darwin = { module = "io.ktor:ktor-client-darwin", version.ref = "ktor" }
ktor-client-logging = { module = "io.ktor:ktor-client-logging", version.ref = "ktor" }
ktor-client-mock = { module = "io.ktor:ktor-client-mock", version.ref = "ktor" }
ktor-client-okHttp = { module = "io.ktor:ktor-client-okhttp", version.ref = "ktor" }
ktor-client-serialization = { module = "io.ktor:ktor-client-serialization", version.ref = "ktor" }
ktor-serialization-kotlinx-json = { module = "io.ktor:ktor-serialization-kotlinx-json", version.ref = "ktor" }

realm-kotlin = { module = "io.realm.kotlin:library-base", version.ref = "realm" }


rickclephas-kmm-viewmodel = { module = "com.rickclephas.kmm:kmm-viewmodel-core", version.ref = "rickclephas-kmm-viewmodel" }
squareup-okio = { module = "com.squareup.okio:okio", version.ref = "squareup-okio" }

firebase-android-core = { module = "com.google.firebase:firebase-bom", version.ref = "firebase-android-bom" }
firebase-android-crashlytics = { module = "com.google.firebase:firebase-crashlytics-ktx" }
firebase-android-storage = { module = "com.google.firebase:firebase-storage-ktx", version.ref = "firebase-android-storage" }
firebase-android-analytics = { module = "com.google.firebase:firebase-analytics-ktx", version.ref = "firebase-android-analytics" }
firebase-android-messaging = { module = "com.google.firebase:firebase-messaging-ktx" }

yandex-ad = { module = "com.yandex.android:mobileads", version.ref = "yandex-ad" }
yookassa-android = { module = "ru.yoomoney.sdk.kassa.payments:yookassa-android-sdk", version.ref = "yookassa-android" }

testing-androidx-core = { module = "androidx.arch.core:core-testing", version.ref = "testing-arch-core" }
testing-androidx-junit = { module = "androidx.test.ext:junit", version.ref = "testing-junitext" }
testing-androidx-junit-ext = { module = "androidx.test.ext:junit-ktx", version.ref = "testing-junitext" }
testing-junit = { module = "junit:junit", version.ref = "testing-junit" }
testing-junit5-engine = { module = "org.junit.jupiter:junit-jupiter-engine", version.ref = "testing-junit5" }
testing-junit5-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "testing-junit5" }
testing-junit5-vintage = { module = "org.junit.vintage:junit-vintage-engine", version.ref = "testing-junit5" }
testing-kotest-assertions-core = { module = "io.kotest:kotest-assertions-core", version.ref = "testing-kotest" }
testing-kotest-assertions-json = { module = "io.kotest:kotest-assertions-json", version.ref = "testing-kotest" }
testing-kotest-framework-datatest = { module = "io.kotest:kotest-framework-datatest", version.ref = "testing-kotest" }
testing-kotest-framework-engine = { module = "io.kotest:kotest-framework-engine", version.ref = "testing-kotest" }
testing-kotest-property = { module = "io.kotest:kotest-property", version.ref = "testing-kotest" }
testing-kotest-property-jvm = { module = "io.kotest:kotest-property-jvm", version.ref = "testing-kotest" }
testing-kotest-runner-junit5 = { module = "io.kotest:kotest-runner-junit5", version.ref = "testing-kotest" }
testing-turbine = { module = "app.cash.turbine:turbine", version.ref = "testing-turbine" }

[bundles]
app-ui = [
    "accompanist-navigation-animation",
    "accompanist-navigation-material",
    "accompanist-systemuicontroller",
    "android-constraintlayout",
    "androidx-compose-activity",
    "androidx-compose-animation",
    "androidx-compose-compiler",
    "androidx-compose-foundation",
    "androidx-compose-material",
    "androidx-compose-material3",
    "androidx-compose-navigation",
    "androidx-compose-ui-runtime",
    "androidx-compose-ui-tooling",
    "androidx-compose-ui-util",
    "androidx-core-ktx",
    "androidx-lifecycle-runtime",
    "androidx-lifecycle-runtime-compose",
    "androidx-lifecycle-viewmodel-compose",
    "androidx-navigation-common",
    "coil-compose",
    "coil-svg",
    "coil-landscapist",
    "coil-landscapist-placeholder",
    "coil-landscapist-transformation"
]
ktor-common = [
    "ktor-client-auth",
    "ktor-client-contentNegotiation",
    "ktor-client-core",
    "ktor-client-logging",
    "ktor-client-serialization",
    "ktor-serialization-kotlinx-json"
]
